/**
 * 重排字符串
 *
 * 题目描述
 * 小红拿到了一个只由小写字母组成的字符串。她准备把这个字符串重排（只改变字母的顺序，不改变数量）
 * 重排后小红想让新字符串不包含任意两个相同的相邻字母。
 * 你能帮帮她吗？
 *
 * 输入描述:
 * 第一行一个正整数
 * n ，代表字符串的长度。
 * (1≤n≤10^5)
 * 第二行为一个长度为
 * n 的、只由小写字母组成的字符串。
 *
 * 输出描述:
 * 如果可以完成重排，请在第一行输出一个“yes”，第二行输出重排后的字符串。如果有多个正解，输出任意即可。
 * 如果不能重排，则直接输出“no”
 */

import java.util.Scanner;

/**
 * 这里成功与不成功其实是再看我们最长的一个字母的个数, 因为只要最长的一个字母的
 * 个数大于半数的话, 其他的字母是没有办法吧大于的部分给分割开来的, 但是要是小于
 * 半数的话, 是可以成功分割开来的
 * 所以我们只要遍历出来最长的字母就可以了
 * 然后还有一个就是最后成功的时候字母的组合
 * 我们只要让最长的字母按照两个两个放就可以了, 后面要是没有放到头就继续放, 要是放
 * 到头了就从头将刚刚跳过的位置放入数字
 * 时间复杂度 : O(n)
 * 空间复杂度 : O(1)
 */

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int n = in.nextInt();

        char[] nums = in.next().toCharArray();

        char maxChar = '0';
        int maxCount = 0;
        int[] hash = new int[26];

        // 找出现次数最多的字符以及次数
        for(int i = 0; i < n; i++) {
            char ch = nums[i];
            if(++hash[ch - 'a'] > maxCount) {
                maxChar = ch;
                maxCount = hash[ch - 'a'];
            }
        }

        // 这里大于一半就是失败的
        if (maxCount > (n + 1) / 2) {
            System.out.println("no");
        } else {
            System.out.println("yes");

            // 最后放回的数组
            char[] res = new char[n];
            int i = 0;

            // 先放最长的数字
            while (maxCount-- != 0) {
                res[i] = maxChar;
                i += 2;
            }

            // 按照字母个数遍历 nums 数组
            for (int j = 0; j < 26; j++) {

                // 不为 0 且不是最大的字母就继续往里面放
                if (hash[j] != 0 && (char)(j + 'a') != maxChar) {
                    while (hash[j]-- != 0) {

                        // 这里注意看是否到达了最后一个位置
                        // 到了回到头来放
                        if (i >= n) {
                            i = 1;
                        }

                        res[i] = (char)(j + 'a');
                        i += 2;
                    }
                }
            }

            // 打印结果
            for (char ch : res) {
                System.out.print(ch);
            }
        }
    }
}